package com.wgy.day33其他增强流.缓冲流.字节缓冲流;

import java.io.*;

/**
 * Created by pc on 2020/12/5 21:37
 * Description: LearningJava
 */
/*
文件复制练习:一读一写

明确:数据源:D:\小云\abc\b\b.txt
    数据的目的地:D:\小云\abc\b.txt

文件复制的步骤:
1.创建一个字节缓冲输入流对象,构造方法中传递字节输入流
2.创建一个字节缓冲输出流对象,构造方法中传递字节输出流
3.使用字节缓冲输入流的read方法读取文件
4.使用字节缓冲输出流的write方法把文件写入到目的地文件中
5.释放资源
*/
public class Demo03FileCopy {
    public static void main(String[] args) throws IOException {
        show02();
    }
    public static void show01() throws IOException {
        long s = System.currentTimeMillis();

        // 1.创建一个字节缓冲输入流对象,构造方法中传递字节输入流
        BufferedInputStream bis=new BufferedInputStream(new FileInputStream("D:\\小云\\abc\\b\\b.txt"));

        //2.创建一个字节缓冲输出流对象,构造方法中传递字节输出流
        BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("D:\\小云\\abc\\b.txt"));

        //3.使用字节缓冲输入流的read方法,读取文件
        int len=0;
        while((len=bis.read())!=-1){
            bos.write(len);
        }
        bos.close();
        bis.close();
        long e = System.currentTimeMillis();
        System.out.println("文件复制共耗时:"+(e-s)+"毫秒");//1毫秒

    }
    public static void show02() throws IOException {
        long s = System.currentTimeMillis();

        //1.创建一个字节输入流对象,构造方法中绑定要读取的数据源
        FileInputStream fis = new FileInputStream("D:\\小云\\abc\\b\\b.txt");

        //2.创建一个字节输出流对象,构造方法中绑定要写入的目的地
        FileOutputStream fos = new FileOutputStream("D:\\小云\\abc\\b.txt");

        //3.使用字节输入流的read方法读取文件
        int len = 0;
        while ((len = fis.read()) != -1) {
            //4.使用字节输出流的write方法把文件写入到目的地文件中
            fos.write(len);
        }

        //5.释放资源
        fos.close();
        fis.close();

        long e = System.currentTimeMillis();
        System.out.println("文件复制共耗时:"+(e-s)+"毫秒");//1毫秒
    }

}
